#include "beep.h"

void Beep_Init(void)
{
    // IOMUXC_SNYS_SW_MUX_CTL_PAD_SYNS_TAMPER1 Address: 0x0229000c value:0x05
    // IOMUXC_SNYS_SW_PAD_CTL_PAD_SYNS_TAMPER1 Address: 0x02290050 value:0x10b0

    // 1. 复用SYNS_TAMPER1引脚为GPIO5_IO01
    IOMUXC_SetPinMux(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0); 

    // 2. 配置GPIO5_IO01引脚的电气属性
    IOMUXC_SetPinConfig(IOMUXC_SNVS_SNVS_TAMPER1_GPIO5_IO01,0x10b0);

    // 3. 配置GPIO5_IO01方向寄存器
    // 3.1 Address:0x020AC000 BIT[1]:1 输出模式
    GPIO5->GDIR |= (1<<1);

    //4. 向数据寄存器写值
    GPIO5->DR |= (1<<1); // CMOS模式输出低电平,beep静音
}

// 注意: 蜂鸣器采用PNP型三极管驱动
// 关闭蜂鸣器
void Beep_OFF(void)
{
    GPIO5->DR |= (1<<1);
}

// 开启蜂鸣器
void Beep_ON(void)
{
    GPIO5->DR &= ~(1<<1);
}

// 蜂鸣器状态切换
void Beep_Switch(int status)
{
    if(status==ON)
    {
        GPIO5->DR &= ~(1<<1);
    }
    else if(status==OFF)
    {
        GPIO5->DR |= (1<<1);
    }
    else
    {

    }
}

